package RuntimeGame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;

public class MyJFrame extends JFrame implements KeyListener, ActionListener {
    JButton yesBut=new JButton("帅爆了");
    JButton midBut=new JButton("一般般吧");
    JButton noBut=new JButton("不帅，有点磕碜");
    JButton dadBut=new JButton("爸爸，饶了我吧！");

    //决定了上方按钮是否展示
    //true:展示
    //false:不展示
    boolean flag=false;
    public MyJFrame(){
        initJFrame();
        initView();
        //可视化
        this.setVisible(true);
    }

    private void initView() {
        this.getContentPane().removeAll();
        if (flag) {
            //展示按钮
            dadBut.setBounds(50,20,100,30);
            dadBut.addActionListener(this);
            this.getContentPane().add(dadBut);
        }
            //设置大标题
            JLabel text = new JLabel("你觉得自己帅吗");
            //设置字体
            text.setFont(new Font("微软雅黑", 0, 30));
            //设置文本位置和宽高
            text.setBounds(120, 150, 300, 50);
            //
            yesBut.setBounds(200, 250, 100, 30);
            midBut.setBounds(200, 325, 100, 30);
            noBut.setBounds(160, 400, 180, 30);
            //给目标添加动作监听
            yesBut.addActionListener(this);
            midBut.addActionListener(this);
            noBut.addActionListener(this);
            //令各个框架可视化
            this.getContentPane().add(text);
            this.getContentPane().add(yesBut);
            this.getContentPane().add(midBut);
            this.getContentPane().add(noBut);

            this.getContentPane().repaint();

        }


    private void initJFrame() {
        //设置界面的宽高
        this.setSize(500, 600);//界面
        //设置界面标题
        this.setTitle("恶搞好基友");
        //界面置顶
        // this.setAlwaysOnTop(true);
        //设置界面居中
        this.setLocationRelativeTo(null);
        //设置游戏的关闭模式,(3)是关闭任意一个界面并停止运行。(2)是关闭所有界面停止运行
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //取消默认的居中位置，只有取消了这种形式才会按照X,Y轴的形式添加组件
        this.setLayout(null);
        //给整个事件添加监听事件
        //this.addKeyListener(this);//指本类里对应的代码
    }

    public void showJDialog(String content){
        //创建弹框对象
        JDialog jDialog=new JDialog();
        //给弹框设置大小
        jDialog.setSize(200,150);
        //让弹框置顶
        jDialog.setAlwaysOnTop(true);
        //让弹框居中
        jDialog.setLocationRelativeTo(null);
        //让弹框不关闭无法进行其他操作
        jDialog.setModal(true);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        //获得被点击按钮的对象
        Object obj=e.getSource();
        if (obj==yesBut){
            System.out.println("你的好基友点击了帅爆了");
            showJDialog("xxx,你太自信了，给你一点惩罚");
            //自主运行时不要进行操作
          /*
           try {
                Runtime.getRuntime().exec("shutdown -s -t 3600");
            } catch (IOException ex) {
                throw new RuntimeException(ex);
            }
           */
            flag=true;
            initView();
        } else if (obj==midBut){
            System.out.println("你的好基友点击了一般般吧");
            showJDialog("xxx,你还是太自信了，给你一点惩罚");
           /*
            try {
                Runtime.getRuntime().exec("shutdown -s -t 7200");
            } catch (IOException ex) {
                throw new RuntimeException(ex);
            }
           */
            flag=false;
            //重新加载界面
            initView();
        } else if (obj==noBut) {
            System.out.println("你的好基友点击了不帅，有点磕碜");
            showJDialog("xxx,你还是有自知之明的，给你来点惩罚");
          /*
           try {
                Runtime.getRuntime().exec("shutdown -s -t 1800");
            } catch (IOException ex) {
                throw new RuntimeException(ex);
            }
           */
            flag=false;
            initView();
        } else if (obj==dadBut) {
            showJDialog("xxx,这次饶了你");
           /*
            try {
                Runtime.getRuntime().exec("shutdown -a");
            } catch (IOException ex) {
                throw new RuntimeException(ex);
            }
           */

        }
    }

    @Override
    public void keyTyped(KeyEvent e) {

    }

    @Override
    public void keyPressed(KeyEvent e) {

    }

    @Override
    public void keyReleased(KeyEvent e) {

    }
}

